C++ 教學(四) 條件敘述句


Posted by JianShan on 2021-08-11

條件敘述句是我們在程式中做判斷時會用到的句型,通常用來比較兩個以上的資料來做判斷,今天我們會介紹兩種在C++中常見的判斷敘述if...elseswitch


if...else判斷式

if...else是程式語言中非常常見的,大部分的程式語言都有這個語法,而他也很好理解翻成中文就是假如...否則

寫法:

if (條件) {
    敘述句;
}
else {
    敘述句;
}

但有個小地方要特別注意,因為在寫判斷式時還不算一句完整的指令,所以還不用加;,要到寫敘述句的時候再加,這要特別注意。

那假如我們今天的判斷不只兩個要到三個四個呢,這時候就會用到if..else的另一個寫法else if,可以同時加入不同條件做判斷。

寫法:

if (條件){
    敘述句;
}
else if (條件){
    敘述句;
}
else{
    敘述句;
}
  • 小技巧: 當敘述句只有一句的時候,可以不需要大括號。

接下來我們來試著寫個成績判斷的範例程式。

範例:

#include <iostream>
using namespace std;

int main(){
    int score;
    cin>>score;
    if(score>=60)
        cout<<"及格"<<endl;
    else
        cout<<"不及格"<<endl;
    return 0;
}

一樣放到 ideone 上看看

那假如今天我們要將分數分級的話該怎麼辦呢,所以現在我們就來寫多個判斷的程式吧,把分數分成A B C D E五組吧。

#include <iostream>

using namespace std;

int main(){
    int score;
    cin>>score;
    if(score>=90)
        cout<<"A";
    else if(score<90 && score>=80)
        cout<<"B";
    else if(score<80 && score>=70)
        cout<<"C";
    else if(score<70 && score>=60)
        cout<<"D";
    else
        cout<<"E";
    return 0;
}

ideone檢查有沒有錯

那如果今天出現了不正常的分數該怎麼辦呢,是不是只要在前面多一個判斷就好了呢,現在先不要往下滑試著自己寫寫看吧。
.
.
.
.
.
.
.
.
.
.
.
.

//答案僅供參考,只要能達成目的的都是正確答案
#include <iostrea>

using namespace std;

int main(){
    int score;
    cin>>score;
    if(score>=0 && score<=100){
        if(score>=60)
            cout<<"及格";
        else
            cout<<"不及格";
    }
    else
        cout<<"請輸入有效分數";
    return 0;
}

switch...case判斷式

switch..case常見於一個變數需要大量的判斷,想想看一直用else if是不是很煩阿,這時候就是switch上場的時候了,不過他的寫法與前面教得有點不一樣,要特別注意。

用法:

switch(變數){
    case 符合的數字或字元:
        敘述句;
        break;
    case 符合的數字或字元:
        敘述句;
        break;
        .
        .
        .
    default:
        敘述句;
}

switch的判斷是這樣,會去比對變數與case是否一樣,如果一樣就執行下面的敘述句然後break跳出判斷,這個break非常重要,如果你沒有加他就會繼續判斷下去,直到遇到default並執行敘述句,因為default就是在你以上都不符合的時候才會執行,所以一定要記住加break

範例:

#include <iostream>

using namespace std;

int main(){
    char score;
    cin>>score;
    switch(score){
        case 'A':
            cout<<"90分";
            break;
        case 'B':
            cout<<"80分";
            break;
        case 'C':
            cout<<"70分";
            break;
        case 'D':
            cout<<"60分";
            break;
        default:
            cout<<"不及格";
    }
    return 0;
}

ideone 看看吧

那假如我們今天要判斷的是一個範圍該怎麼辦呢,所以switch還有另一種寫法,要特別注意,他數字的範圍是包含於頭尾兩個數字。

用法:

switch(變數){
    case 數字 ... 數字:
        敘述句;
        break;
        .
        .
        .
    default:
        敘述句;
}

那我們就用前面的範例換成switch...case寫寫看吧。

#include <iostream>

using namespace std;

int main(){
    int score;
    cin>>score;
    switch(score){
        case 90 ... 100:
            cout<<"A";
            break;
        case 80 ... 89:
            cout<<"B";
            break;
        case 70 ... 79:
            cout<<"C";
            break;
        case 60 ... 69:
            cout<<"D";
            break;
        case 0 ... 59:
            cout<<"F";
            break;
        default:
            cout<<"請輸入有效數字";
    }
    return 0;
}

ideone



那這章就到這邊啦,有任何問題歡迎下面留言指教,下一章我們會開始教迴圈的使用


#C++ #教學 #筆記







Related Posts

Longest Common Prefix

Longest Common Prefix

Wampserver如何安裝舊版本php

Wampserver如何安裝舊版本php

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04

Secure Apache Using Certbot with Let's Encrypt on Ubuntu 20.04


Comments